home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-04
/
tool_inc.zip
/
GETFILE3.INC
< prev
next >
Wrap
Text File
|
1989-07-10
|
2KB
|
86 lines
(*
* Copyright 1987, 1989 Samuel H. Smith; All rights reserved
*
* This is a component of the ProDoor System.
* Do not distribute modified versions without my permission.
* Do not remove or alter this notice or any other copyright notice.
* If you use this in your own program you must distribute source code.
* Do not use any of this in a commercial product.
*
*)
(*
* getfile2 - file list processing library (simplified version)
*
* This module will change a wildcard list of files into a
* sorted file name list.
*
* Samuel H. Smith, rev. 25-oct-87
*
*)
procedure getfiles (pattern: string65;
var fdir: filearray;
var num: integer);
var
i: integer;
curdir: string65;
keyword: string13;
doscan: boolean; {can dos do this wildcard?}
DirInfo: SearchRec;
begin
stoupper(pattern);
curdir := path_only(pattern);
if curdir = '' then
curdir := '@:';
if (length(curdir) = 2) and (curdir[2] = ':') then
getdir(ord(curdir[1])-ord('@'),curdir);
if (curdir[length(curdir)] <> '\') then
begin
inc(curdir[0]);
curdir[length(curdir)] := '\';
end;
keyword := remove_path(pattern);
doscan := true;
i := pos('*',keyword);
if i > 0 then
if (keyword[i+1] <> '.') and (i < length(keyword)) then
doscan := false;
if doscan = false then
pattern := curdir + '*.*';
num := 0;
FindFirst(pattern,$21,DirInfo);
while (DosError = 0) and (num < maxnumfiles) do
begin
{best if $B-}
if doscan or wildcard_match(keyword, DirInfo.name) then
begin
inc(num);
savestr(fdir[num],curdir + DirInfo.name);
end;
FindNext(DirInfo);
end;
{ if num >= maxnumfiles then
writeln('Warning: Files in excess of ', maxnumfiles, ' ignored.');
}
{writeln('getfile3 par=',pattern,
' cd=',curdir,
' key=',keyword,
' can=',doscan,
' n=',num);}
end; {getfiles}